<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/signal.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1NJR05BTF9IXzA_"><span class="b">_LINUX_SIGNAL_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1NJR05BTF9IXzA_"><span class="b">_LINUX_SIGNAL_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">list</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">uapi</span><span class="f">/</span><span class="b">linux</span><span class="f">/</span><span class="b">signal</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="6" /><span class="True">       6:</span> 
<a name="7" /><span class="True">       7:</span> <span class="m">struct</span> <span class="b">task_struct</span><span class="f">;</span>
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> <span class="k">/* for sysctl */</span>
<a name="10" /><span class="True">      10:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">print_fatal_signals</span><span class="f">;</span>
<a name="11" /><span class="True">      11:</span> <span class="k">/*</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * Real Time signals may be queued.</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> */</span>
<a name="14" /><span class="True">      14:</span> 
<a name="15" /><span class="True">      15:</span> <span class="m">struct</span> <span class="b">sigqueue</span> <span class="f">{</span>
<a name="16" /><span class="True">      16:</span>     <span class="m">struct</span> <span class="b">list_head</span> <span class="b">list</span><span class="f">;</span>
<a name="17" /><span class="True">      17:</span>     <span class="m">int</span> <span class="b">flags</span><span class="f">;</span>
<a name="18" /><span class="True">      18:</span>     <span class="b">siginfo_t</span> <span class="b">info</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span>     <span class="m">struct</span> <span class="b">user_struct</span> <span class="f">*</span><span class="b">user</span><span class="f">;</span>
<a name="20" /><span class="True">      20:</span> <span class="f">}</span><span class="f">;</span>
<a name="21" /><span class="True">      21:</span> 
<a name="22" /><span class="True">      22:</span> <span class="k">/* flags values. */</span>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHUVVFVUVfUFJFQUxMT0NfMA__"><span class="b">SIGQUEUE_PREALLOC</span></a>    <span class="c">1</span>
<a name="24" /><span class="True">      24:</span> 
<a name="25" /><span class="True">      25:</span> <span class="m">struct</span> <span class="b">sigpending</span> <span class="f">{</span>
<a name="26" /><span class="True">      26:</span>     <span class="m">struct</span> <span class="b">list_head</span> <span class="b">list</span><span class="f">;</span>
<a name="27" /><span class="True">      27:</span>     <span class="b">sigset_t</span> <span class="b">signal</span><span class="f">;</span>
<a name="28" /><span class="True">      28:</span> <span class="f">}</span><span class="f">;</span>
<a name="29" /><span class="True">      29:</span> 
<a name="30" /><span class="True">      30:</span> <span class="k">/*</span>
<a name="31" /><span class="True">      31:</span> <span class="k"> * Define some primitives to manipulate sigset_t.</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> */</span>
<a name="33" /><span class="True">      33:</span> 
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_SIG_BITOPS</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">bitops</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <span class="k">/* We don&apos;t use &lt;linux/bitops.h&gt; for these because there is no need to</span>
<a name="38" /><span class="True">      38:</span> <span class="k">   be atomic.  */</span>
<a name="39" /><span class="True">      39:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigaddset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">int</span> <span class="b">_sig</span><span class="f">)</span>
<a name="40" /><span class="True">      40:</span> <span class="f">{</span>
<a name="41" /><span class="True">      41:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">sig</span> <span class="f">=</span> <span class="b">_sig</span> <span class="f">-</span> <span class="c">1</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span>     <span class="m">if</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span> <span class="f">==</span> <span class="c">1</span><span class="f">)</span>
<a name="43" /><span class="True">      43:</span>         <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">|=</span> <span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="b">sig</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span>     <span class="m">else</span>
<a name="45" /><span class="True">      45:</span>         <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="b">sig</span> <span class="f">/</span> <span class="b">_NSIG_BPW</span><span class="f">]</span> <span class="f">|=</span> <span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><span class="b">sig</span> <span class="f">%</span> <span class="b">_NSIG_BPW</span><span class="f">)</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> <span class="f">}</span>
<a name="47" /><span class="True">      47:</span> 
<a name="48" /><span class="True">      48:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigdelset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">int</span> <span class="b">_sig</span><span class="f">)</span>
<a name="49" /><span class="True">      49:</span> <span class="f">{</span>
<a name="50" /><span class="True">      50:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">sig</span> <span class="f">=</span> <span class="b">_sig</span> <span class="f">-</span> <span class="c">1</span><span class="f">;</span>
<a name="51" /><span class="True">      51:</span>     <span class="m">if</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span> <span class="f">==</span> <span class="c">1</span><span class="f">)</span>
<a name="52" /><span class="True">      52:</span>         <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">&amp;=</span> <span class="f">~</span><span class="f">(</span><span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="b">sig</span><span class="f">)</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span>     <span class="m">else</span>
<a name="54" /><span class="True">      54:</span>         <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="b">sig</span> <span class="f">/</span> <span class="b">_NSIG_BPW</span><span class="f">]</span> <span class="f">&amp;=</span> <span class="f">~</span><span class="f">(</span><span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><span class="b">sig</span> <span class="f">%</span> <span class="b">_NSIG_BPW</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="55" /><span class="True">      55:</span> <span class="f">}</span>
<a name="56" /><span class="True">      56:</span> 
<a name="57" /><span class="True">      57:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">sigismember</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">int</span> <span class="b">_sig</span><span class="f">)</span>
<a name="58" /><span class="True">      58:</span> <span class="f">{</span>
<a name="59" /><span class="True">      59:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">sig</span> <span class="f">=</span> <span class="b">_sig</span> <span class="f">-</span> <span class="c">1</span><span class="f">;</span>
<a name="60" /><span class="True">      60:</span>     <span class="m">if</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span> <span class="f">==</span> <span class="c">1</span><span class="f">)</span>
<a name="61" /><span class="True">      61:</span>         <span class="m">return</span> <span class="c">1</span> <span class="f">&amp;</span> <span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">&gt;&gt;</span> <span class="b">sig</span><span class="f">)</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span>     <span class="m">else</span>
<a name="63" /><span class="True">      63:</span>         <span class="m">return</span> <span class="c">1</span> <span class="f">&amp;</span> <span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="b">sig</span> <span class="f">/</span> <span class="b">_NSIG_BPW</span><span class="f">]</span> <span class="f">&gt;&gt;</span> <span class="f">(</span><span class="b">sig</span> <span class="f">%</span> <span class="b">_NSIG_BPW</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="64" /><span class="True">      64:</span> <span class="f">}</span>
<a name="65" /><span class="True">      65:</span> 
<a name="66" /><span class="True">      66:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">sigfindinword</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">long</span> <span class="b">word</span><span class="f">)</span>
<a name="67" /><span class="True">      67:</span> <span class="f">{</span>
<a name="68" /><span class="True">      68:</span>     <span class="m">return</span> <span class="b">ffz</span><span class="f">(</span><span class="f">~</span><span class="b">word</span><span class="f">)</span><span class="f">;</span>
<a name="69" /><span class="True">      69:</span> <span class="f">}</span>
<a name="70" /><span class="True">      70:</span> 
<a name="71" /><span class="True">      71:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __HAVE_ARCH_SIG_BITOPS */</span>
<a name="72" /><span class="True">      72:</span> 
<a name="73" /><span class="True">      73:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">sigisemptyset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">)</span>
<a name="74" /><span class="True">      74:</span> <span class="f">{</span>
<a name="75" /><span class="True">      75:</span>     <span class="m">extern</span> <span class="m">void</span> <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="76" /><span class="True">      76:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>
<a name="77" /><span class="True">      77:</span>     <span class="m">case</span> <span class="c">4</span><span class="f">:</span>
<a name="78" /><span class="True">      78:</span>         <span class="m">return</span> <span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span> <span class="f">|</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span> <span class="f">|</span>
<a name="79" /><span class="True">      79:</span>             <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">|</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span> <span class="f">==</span> <span class="c">0</span><span class="f">;</span>
<a name="80" /><span class="True">      80:</span>     <span class="m">case</span> <span class="c">2</span><span class="f">:</span>
<a name="81" /><span class="True">      81:</span>         <span class="m">return</span> <span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">|</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span> <span class="f">==</span> <span class="c">0</span><span class="f">;</span>
<a name="82" /><span class="True">      82:</span>     <span class="m">case</span> <span class="c">1</span><span class="f">:</span>
<a name="83" /><span class="True">      83:</span>         <span class="m">return</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">==</span> <span class="c">0</span><span class="f">;</span>
<a name="84" /><span class="True">      84:</span>     <span class="m">default</span><span class="f">:</span>
<a name="85" /><span class="True">      85:</span>         <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="True">      86:</span>         <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="87" /><span class="True">      87:</span>     <span class="f">}</span>
<a name="88" /><span class="True">      88:</span> <span class="f">}</span>
<a name="89" /><span class="True">      89:</span> 
<a name="90" /><span class="True">      90:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnbWFza18w"><span class="b">sigmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span>    <span class="f">(</span><span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="91" /><span class="True">      91:</span> 
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__HAVE_ARCH_SIG_SETOPS</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">string</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="94" /><span class="True">      94:</span> 
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfQklOT1BfMA__"><span class="b">_SIG_SET_BINOP</span></a><span class="f">(</span><span class="b">name</span><span class="f">,</span> <span class="b">op</span><span class="f">)</span>                    \
<a name="96" /><span class="True">      96:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">name</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">r</span><span class="f">,</span> <span class="m">const</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="b">a</span><span class="f">,</span> <span class="m">const</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="b">b</span><span class="f">)</span> \
<a name="97" /><span class="True">      97:</span> <span class="f">{</span>                                    \
<a name="98" /><span class="True">      98:</span>     <span class="m">extern</span> <span class="m">void</span> <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>        \
<a name="99" /><span class="True">      99:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">a0</span><span class="f">,</span> <span class="b">a1</span><span class="f">,</span> <span class="b">a2</span><span class="f">,</span> <span class="b">a3</span><span class="f">,</span> <span class="b">b0</span><span class="f">,</span> <span class="b">b1</span><span class="f">,</span> <span class="b">b2</span><span class="f">,</span> <span class="b">b3</span><span class="f">;</span>            \
<a name="100" /><span class="True">     100:</span>                                     \
<a name="101" /><span class="True">     101:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>                        \
<a name="102" /><span class="True">     102:</span>         <span class="m">case</span> <span class="c">4</span><span class="f">:</span>                            \
<a name="103" /><span class="True">     103:</span>         <span class="b">a3</span> <span class="f">=</span> <span class="b">a</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span><span class="f">;</span> <span class="b">a2</span> <span class="f">=</span> <span class="b">a</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span><span class="f">;</span>                \
<a name="104" /><span class="True">     104:</span>         <span class="b">b3</span> <span class="f">=</span> <span class="b">b</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span><span class="f">;</span> <span class="b">b2</span> <span class="f">=</span> <span class="b">b</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span><span class="f">;</span>                \
<a name="105" /><span class="True">     105:</span>         <span class="b">r</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">a3</span><span class="f">,</span> <span class="b">b3</span><span class="f">)</span><span class="f">;</span>                    \
<a name="106" /><span class="True">     106:</span>         <span class="b">r</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">a2</span><span class="f">,</span> <span class="b">b2</span><span class="f">)</span><span class="f">;</span>                    \
<a name="107" /><span class="True">     107:</span>         <span class="m">case</span> <span class="c">2</span><span class="f">:</span>                            \
<a name="108" /><span class="True">     108:</span>         <span class="b">a1</span> <span class="f">=</span> <span class="b">a</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span><span class="f">;</span> <span class="b">b1</span> <span class="f">=</span> <span class="b">b</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span><span class="f">;</span>                \
<a name="109" /><span class="True">     109:</span>         <span class="b">r</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">a1</span><span class="f">,</span> <span class="b">b1</span><span class="f">)</span><span class="f">;</span>                    \
<a name="110" /><span class="True">     110:</span>         <span class="m">case</span> <span class="c">1</span><span class="f">:</span>                            \
<a name="111" /><span class="True">     111:</span>         <span class="b">a0</span> <span class="f">=</span> <span class="b">a</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">;</span> <span class="b">b0</span> <span class="f">=</span> <span class="b">b</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">;</span>                \
<a name="112" /><span class="True">     112:</span>         <span class="b">r</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">a0</span><span class="f">,</span> <span class="b">b0</span><span class="f">)</span><span class="f">;</span>                    \
<a name="113" /><span class="True">     113:</span>         <span class="m">break</span><span class="f">;</span>                            \
<a name="114" /><span class="True">     114:</span>         <span class="m">default</span><span class="f">:</span>                            \
<a name="115" /><span class="True">     115:</span>         <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="f">)</span><span class="f">;</span>            \
<a name="116" /><span class="True">     116:</span>     <span class="f">}</span>                                \
<a name="117" /><span class="True">     117:</span> <span class="f">}</span>
<a name="118" /><span class="True">     118:</span> 
<a name="119" /><span class="True">     119:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X3NpZ19vcl8w"><span class="b">_sig_or</span></a><span class="f">(</span><span class="b">x</span><span class="f">,</span><span class="b">y</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">|</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span>
<a name="120" /><span class="True">     120:</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfQklOT1BfMA__"><span class="b">_SIG_SET_BINOP</span></a><span class="f">(</span><span class="b">sigorsets</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_X3NpZ19vcl8w"><span class="b">_sig_or</span></a><span class="f">)</span>
<a name="121" /><span class="True">     121:</span> 
<a name="122" /><span class="True">     122:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRfMA__"><span class="b">_sig_and</span></a><span class="f">(</span><span class="b">x</span><span class="f">,</span><span class="b">y</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span>
<a name="123" /><span class="True">     123:</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfQklOT1BfMA__"><span class="b">_SIG_SET_BINOP</span></a><span class="f">(</span><span class="b">sigandsets</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRfMA__"><span class="b">_sig_and</span></a><span class="f">)</span>
<a name="124" /><span class="True">     124:</span> 
<a name="125" /><span class="True">     125:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRuXzA_"><span class="b">_sig_andn</span></a><span class="f">(</span><span class="b">x</span><span class="f">,</span><span class="b">y</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">~</span><span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span>
<a name="126" /><span class="True">     126:</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfQklOT1BfMA__"><span class="b">_SIG_SET_BINOP</span></a><span class="f">(</span><span class="b">sigandnsets</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRuXzA_"><span class="b">_sig_andn</span></a><span class="f">)</span>
<a name="127" /><span class="True">     127:</span> 
<a name="128" /><span class="True">     128:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfQklOT1BfMA__"><span class="b">_SIG_SET_BINOP</span></a>
<a name="129" /><span class="True">     129:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X3NpZ19vcl8w"><span class="b">_sig_or</span></a>
<a name="130" /><span class="True">     130:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRfMA__"><span class="b">_sig_and</span></a>
<a name="131" /><span class="True">     131:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X3NpZ19hbmRuXzA_"><span class="b">_sig_andn</span></a>
<a name="132" /><span class="True">     132:</span> 
<a name="133" /><span class="True">     133:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfT1BfMA__"><span class="b">_SIG_SET_OP</span></a><span class="f">(</span><span class="b">name</span><span class="f">,</span> <span class="b">op</span><span class="f">)</span>                        \
<a name="134" /><span class="True">     134:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">name</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">)</span>                    \
<a name="135" /><span class="True">     135:</span> <span class="f">{</span>                                    \
<a name="136" /><span class="True">     136:</span>     <span class="m">extern</span> <span class="m">void</span> <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>        \
<a name="137" /><span class="True">     137:</span>                                     \
<a name="138" /><span class="True">     138:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>                        \
<a name="139" /><span class="True">     139:</span>         <span class="m">case</span> <span class="c">4</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">3</span><span class="f">]</span><span class="f">)</span><span class="f">;</span>            \
<a name="140" /><span class="True">     140:</span>             <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">2</span><span class="f">]</span><span class="f">)</span><span class="f">;</span>            \
<a name="141" /><span class="True">     141:</span>         <span class="m">case</span> <span class="c">2</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span><span class="f">)</span><span class="f">;</span>            \
<a name="142" /><span class="True">     142:</span>         <span class="m">case</span> <span class="c">1</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="b">op</span><span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span><span class="f">;</span>            \
<a name="143" /><span class="True">     143:</span>             <span class="m">break</span><span class="f">;</span>                        \
<a name="144" /><span class="True">     144:</span>         <span class="m">default</span><span class="f">:</span>                            \
<a name="145" /><span class="True">     145:</span>         <span class="b">_NSIG_WORDS_is_unsupported_size</span><span class="f">(</span><span class="f">)</span><span class="f">;</span>            \
<a name="146" /><span class="True">     146:</span>     <span class="f">}</span>                                \
<a name="147" /><span class="True">     147:</span> <span class="f">}</span>
<a name="148" /><span class="True">     148:</span> 
<a name="149" /><span class="True">     149:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X3NpZ19ub3RfMA__"><span class="b">_sig_not</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>    <span class="f">(</span><span class="f">~</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span>
<a name="150" /><span class="True">     150:</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfT1BfMA__"><span class="b">_SIG_SET_OP</span></a><span class="f">(</span><span class="b">signotset</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_X3NpZ19ub3RfMA__"><span class="b">_sig_not</span></a><span class="f">)</span>
<a name="151" /><span class="True">     151:</span> 
<a name="152" /><span class="True">     152:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X1NJR19TRVRfT1BfMA__"><span class="b">_SIG_SET_OP</span></a>
<a name="153" /><span class="True">     153:</span> <span class="f">#</span><span class="n">undef</span> <a href="cpu.c_macros_ref.html#_X3NpZ19ub3RfMA__"><span class="b">_sig_not</span></a>
<a name="154" /><span class="True">     154:</span> 
<a name="155" /><span class="True">     155:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigemptyset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">)</span>
<a name="156" /><span class="True">     156:</span> <span class="f">{</span>
<a name="157" /><span class="True">     157:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>
<a name="158" /><span class="True">     158:</span>     <span class="m">default</span><span class="f">:</span>
<a name="159" /><span class="True">     159:</span>         <span class="b">memset</span><span class="f">(</span><span class="b">set</span><span class="f">,</span> <span class="c">0</span><span class="f">,</span> <span class="m">sizeof</span><span class="f">(</span><span class="b">sigset_t</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="160" /><span class="True">     160:</span>         <span class="m">break</span><span class="f">;</span>
<a name="161" /><span class="True">     161:</span>     <span class="m">case</span> <span class="c">2</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="c">0</span><span class="f">;</span>
<a name="162" /><span class="True">     162:</span>     <span class="m">case</span> <span class="c">1</span><span class="f">:</span>    <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="c">0</span><span class="f">;</span>
<a name="163" /><span class="True">     163:</span>         <span class="m">break</span><span class="f">;</span>
<a name="164" /><span class="True">     164:</span>     <span class="f">}</span>
<a name="165" /><span class="True">     165:</span> <span class="f">}</span>
<a name="166" /><span class="True">     166:</span> 
<a name="167" /><span class="True">     167:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigfillset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">)</span>
<a name="168" /><span class="True">     168:</span> <span class="f">{</span>
<a name="169" /><span class="True">     169:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>
<a name="170" /><span class="True">     170:</span>     <span class="m">default</span><span class="f">:</span>
<a name="171" /><span class="True">     171:</span>         <span class="b">memset</span><span class="f">(</span><span class="b">set</span><span class="f">,</span> <span class="f">-</span><span class="c">1</span><span class="f">,</span> <span class="m">sizeof</span><span class="f">(</span><span class="b">sigset_t</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="172" /><span class="True">     172:</span>         <span class="m">break</span><span class="f">;</span>
<a name="173" /><span class="True">     173:</span>     <span class="m">case</span> <span class="c">2</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="f">-</span><span class="c">1</span><span class="f">;</span>
<a name="174" /><span class="True">     174:</span>     <span class="m">case</span> <span class="c">1</span><span class="f">:</span>    <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="f">-</span><span class="c">1</span><span class="f">;</span>
<a name="175" /><span class="True">     175:</span>         <span class="m">break</span><span class="f">;</span>
<a name="176" /><span class="True">     176:</span>     <span class="f">}</span>
<a name="177" /><span class="True">     177:</span> <span class="f">}</span>
<a name="178" /><span class="True">     178:</span> 
<a name="179" /><span class="True">     179:</span> <span class="k">/* Some extensions for manipulating the low 32 signals in particular.  */</span>
<a name="180" /><span class="True">     180:</span> 
<a name="181" /><span class="True">     181:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigaddsetmask</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">)</span>
<a name="182" /><span class="True">     182:</span> <span class="f">{</span>
<a name="183" /><span class="True">     183:</span>     <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">|=</span> <span class="b">mask</span><span class="f">;</span>
<a name="184" /><span class="True">     184:</span> <span class="f">}</span>
<a name="185" /><span class="True">     185:</span> 
<a name="186" /><span class="True">     186:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">sigdelsetmask</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">)</span>
<a name="187" /><span class="True">     187:</span> <span class="f">{</span>
<a name="188" /><span class="True">     188:</span>     <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">&amp;=</span> <span class="f">~</span><span class="b">mask</span><span class="f">;</span>
<a name="189" /><span class="True">     189:</span> <span class="f">}</span>
<a name="190" /><span class="True">     190:</span> 
<a name="191" /><span class="True">     191:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">sigtestsetmask</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">)</span>
<a name="192" /><span class="True">     192:</span> <span class="f">{</span>
<a name="193" /><span class="True">     193:</span>     <span class="m">return</span> <span class="f">(</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">&amp;</span> <span class="b">mask</span><span class="f">)</span> <span class="f">!=</span> <span class="c">0</span><span class="f">;</span>
<a name="194" /><span class="True">     194:</span> <span class="f">}</span>
<a name="195" /><span class="True">     195:</span> 
<a name="196" /><span class="True">     196:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">siginitset</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">)</span>
<a name="197" /><span class="True">     197:</span> <span class="f">{</span>
<a name="198" /><span class="True">     198:</span>     <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="b">mask</span><span class="f">;</span>
<a name="199" /><span class="True">     199:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>
<a name="200" /><span class="True">     200:</span>     <span class="m">default</span><span class="f">:</span>
<a name="201" /><span class="True">     201:</span>         <span class="b">memset</span><span class="f">(</span><span class="f">&amp;</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span><span class="f">,</span> <span class="c">0</span><span class="f">,</span> <span class="m">sizeof</span><span class="f">(</span><span class="m">long</span><span class="f">)</span><span class="f">*</span><span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">-</span><span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="202" /><span class="True">     202:</span>         <span class="m">break</span><span class="f">;</span>
<a name="203" /><span class="True">     203:</span>     <span class="m">case</span> <span class="c">2</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="c">0</span><span class="f">;</span>
<a name="204" /><span class="True">     204:</span>     <span class="m">case</span> <span class="c">1</span><span class="f">:</span> <span class="f">;</span>
<a name="205" /><span class="True">     205:</span>     <span class="f">}</span>
<a name="206" /><span class="True">     206:</span> <span class="f">}</span>
<a name="207" /><span class="True">     207:</span> 
<a name="208" /><span class="True">     208:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">siginitsetinv</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="b">set</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">)</span>
<a name="209" /><span class="True">     209:</span> <span class="f">{</span>
<a name="210" /><span class="True">     210:</span>     <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="f">~</span><span class="b">mask</span><span class="f">;</span>
<a name="211" /><span class="True">     211:</span>     <span class="m">switch</span> <span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">)</span> <span class="f">{</span>
<a name="212" /><span class="True">     212:</span>     <span class="m">default</span><span class="f">:</span>
<a name="213" /><span class="True">     213:</span>         <span class="b">memset</span><span class="f">(</span><span class="f">&amp;</span><span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span><span class="f">,</span> <span class="f">-</span><span class="c">1</span><span class="f">,</span> <span class="m">sizeof</span><span class="f">(</span><span class="m">long</span><span class="f">)</span><span class="f">*</span><span class="f">(</span><span class="b">_NSIG_WORDS</span><span class="f">-</span><span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="214" /><span class="True">     214:</span>         <span class="m">break</span><span class="f">;</span>
<a name="215" /><span class="True">     215:</span>     <span class="m">case</span> <span class="c">2</span><span class="f">:</span> <span class="b">set</span><span class="f">-&gt;</span><span class="b">sig</span><span class="f">[</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="f">-</span><span class="c">1</span><span class="f">;</span>
<a name="216" /><span class="True">     216:</span>     <span class="m">case</span> <span class="c">1</span><span class="f">:</span> <span class="f">;</span>
<a name="217" /><span class="True">     217:</span>     <span class="f">}</span>
<a name="218" /><span class="True">     218:</span> <span class="f">}</span>
<a name="219" /><span class="True">     219:</span> 
<a name="220" /><span class="True">     220:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __HAVE_ARCH_SIG_SETOPS */</span>
<a name="221" /><span class="True">     221:</span> 
<a name="222" /><span class="True">     222:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">init_sigpending</span><span class="f">(</span><span class="m">struct</span> <span class="b">sigpending</span> <span class="f">*</span><span class="b">sig</span><span class="f">)</span>
<a name="223" /><span class="True">     223:</span> <span class="f">{</span>
<a name="224" /><span class="True">     224:</span>     <span class="b">sigemptyset</span><span class="f">(</span><span class="f">&amp;</span><span class="b">sig</span><span class="f">-&gt;</span><span class="b">signal</span><span class="f">)</span><span class="f">;</span>
<a name="225" /><span class="True">     225:</span>     <span class="b">INIT_LIST_HEAD</span><span class="f">(</span><span class="f">&amp;</span><span class="b">sig</span><span class="f">-&gt;</span><span class="b">list</span><span class="f">)</span><span class="f">;</span>
<a name="226" /><span class="True">     226:</span> <span class="f">}</span>
<a name="227" /><span class="True">     227:</span> 
<a name="228" /><span class="True">     228:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">flush_sigqueue</span><span class="f">(</span><span class="m">struct</span> <span class="b">sigpending</span> <span class="f">*</span><span class="b">queue</span><span class="f">)</span><span class="f">;</span>
<a name="229" /><span class="True">     229:</span> 
<a name="230" /><span class="True">     230:</span> <span class="k">/* Test if &apos;sig&apos; is valid signal. Use this instead of testing _NSIG directly */</span>
<a name="231" /><span class="True">     231:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">valid_signal</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">long</span> <span class="b">sig</span><span class="f">)</span>
<a name="232" /><span class="True">     232:</span> <span class="f">{</span>
<a name="233" /><span class="True">     233:</span>     <span class="m">return</span> <span class="b">sig</span> <span class="f">&lt;=</span> <span class="b">_NSIG</span> <span class="f">?</span> <span class="c">1</span> <span class="f">:</span> <span class="c">0</span><span class="f">;</span>
<a name="234" /><span class="True">     234:</span> <span class="f">}</span>
<a name="235" /><span class="True">     235:</span> 
<a name="236" /><span class="True">     236:</span> <span class="m">struct</span> <span class="b">timespec</span><span class="f">;</span>
<a name="237" /><span class="True">     237:</span> <span class="m">struct</span> <span class="b">pt_regs</span><span class="f">;</span>
<a name="238" /><span class="True">     238:</span> 
<a name="239" /><span class="True">     239:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">next_signal</span><span class="f">(</span><span class="m">struct</span> <span class="b">sigpending</span> <span class="f">*</span><span class="b">pending</span><span class="f">,</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="b">mask</span><span class="f">)</span><span class="f">;</span>
<a name="240" /><span class="True">     240:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">do_send_sig_info</span><span class="f">(</span><span class="m">int</span> <span class="b">sig</span><span class="f">,</span> <span class="m">struct</span> <span class="b">siginfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span>
<a name="241" /><span class="True">     241:</span>                 <span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="b">p</span><span class="f">,</span> <span class="m">bool</span> <span class="b">group</span><span class="f">)</span><span class="f">;</span>
<a name="242" /><span class="True">     242:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">group_send_sig_info</span><span class="f">(</span><span class="m">int</span> <span class="b">sig</span><span class="f">,</span> <span class="m">struct</span> <span class="b">siginfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="b">p</span><span class="f">)</span><span class="f">;</span>
<a name="243" /><span class="True">     243:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">__group_send_sig_info</span><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="m">struct</span> <span class="b">siginfo</span> <span class="f">*</span><span class="f">,</span> <span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="244" /><span class="True">     244:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">do_sigtimedwait</span><span class="f">(</span><span class="m">const</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="f">,</span> <span class="b">siginfo_t</span> <span class="f">*</span><span class="f">,</span>
<a name="245" /><span class="True">     245:</span>                 <span class="m">const</span> <span class="m">struct</span> <span class="b">timespec</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="246" /><span class="True">     246:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">sigprocmask</span><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="f">,</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="247" /><span class="True">     247:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">set_current_blocked</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="248" /><span class="True">     248:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">__set_current_blocked</span><span class="f">(</span><span class="m">const</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="249" /><span class="True">     249:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">show_unhandled_signals</span><span class="f">;</span>
<a name="250" /><span class="True">     250:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">sigsuspend</span><span class="f">(</span><span class="b">sigset_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="251" /><span class="True">     251:</span> 
<a name="252" /><span class="True">     252:</span> <span class="m">struct</span> <span class="b">sigaction</span> <span class="f">{</span>
<a name="253" /><span class="True">     253:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ARCH_HAS_IRIX_SIGACTION</span>
<a name="254" /><span class="True">     254:</span>     <span class="b">__sighandler_t</span>    <span class="b">sa_handler</span><span class="f">;</span>
<a name="255" /><span class="True">     255:</span>     <span class="m">unsigned</span> <span class="m">long</span>    <span class="b">sa_flags</span><span class="f">;</span>
<a name="256" /><span class="False">     256:</span> <span class="f">#</span><span class="n">else</span>
<a name="257" /><span class="False">     257:</span>     <span class="m">unsigned</span> <span class="m">int</span>    <span class="b">sa_flags</span><span class="f">;</span>
<a name="258" /><span class="False">     258:</span>     <span class="b">__sighandler_t</span>    <span class="b">sa_handler</span><span class="f">;</span>
<a name="259" /><span class="True">     259:</span> <span class="f">#</span><span class="n">endif</span>
<a name="260" /><span class="False">     260:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__ARCH_HAS_SA_RESTORER</span>
<a name="261" /><span class="False">     261:</span>     <span class="b">__sigrestore_t</span> <span class="b">sa_restorer</span><span class="f">;</span>
<a name="262" /><span class="True">     262:</span> <span class="f">#</span><span class="n">endif</span>
<a name="263" /><span class="True">     263:</span>     <span class="b">sigset_t</span>    <span class="b">sa_mask</span><span class="f">;</span>    <span class="k">/* mask last for extensibility */</span>
<a name="264" /><span class="True">     264:</span> <span class="f">}</span><span class="f">;</span>
<a name="265" /><span class="True">     265:</span> 
<a name="266" /><span class="True">     266:</span> <span class="m">struct</span> <span class="b">k_sigaction</span> <span class="f">{</span>
<a name="267" /><span class="True">     267:</span>     <span class="m">struct</span> <span class="b">sigaction</span> <span class="b">sa</span><span class="f">;</span>
<a name="268" /><span class="False">     268:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__ARCH_HAS_KA_RESTORER</span>
<a name="269" /><span class="False">     269:</span>     <span class="b">__sigrestore_t</span> <span class="b">ka_restorer</span><span class="f">;</span>
<a name="270" /><span class="True">     270:</span> <span class="f">#</span><span class="n">endif</span>
<a name="271" /><span class="True">     271:</span> <span class="f">}</span><span class="f">;</span>
<a name="272" /><span class="True">     272:</span>  
<a name="273" /><span class="False">     273:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_OLD_SIGACTION</span>
<a name="274" /><span class="False">     274:</span> <span class="m">struct</span> <span class="b">old_sigaction</span> <span class="f">{</span>
<a name="275" /><span class="False">     275:</span>     <span class="b">__sighandler_t</span> <span class="b">sa_handler</span><span class="f">;</span>
<a name="276" /><span class="False">     276:</span>     <span class="b">old_sigset_t</span> <span class="b">sa_mask</span><span class="f">;</span>
<a name="277" /><span class="False">     277:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">sa_flags</span><span class="f">;</span>
<a name="278" /><span class="False">     278:</span>     <span class="b">__sigrestore_t</span> <span class="b">sa_restorer</span><span class="f">;</span>
<a name="279" /><span class="False">     279:</span> <span class="f">}</span><span class="f">;</span>
<a name="280" /><span class="True">     280:</span> <span class="f">#</span><span class="n">endif</span>
<a name="281" /><span class="True">     281:</span> 
<a name="282" /><span class="True">     282:</span> <span class="m">struct</span> <span class="b">ksignal</span> <span class="f">{</span>
<a name="283" /><span class="True">     283:</span>     <span class="m">struct</span> <span class="b">k_sigaction</span> <span class="b">ka</span><span class="f">;</span>
<a name="284" /><span class="True">     284:</span>     <span class="b">siginfo_t</span> <span class="b">info</span><span class="f">;</span>
<a name="285" /><span class="True">     285:</span>     <span class="m">int</span> <span class="b">sig</span><span class="f">;</span>
<a name="286" /><span class="True">     286:</span> <span class="f">}</span><span class="f">;</span>
<a name="287" /><span class="True">     287:</span> 
<a name="288" /><span class="True">     288:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">get_signal_to_deliver</span><span class="f">(</span><span class="b">siginfo_t</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">k_sigaction</span> <span class="f">*</span><span class="b">return_ka</span><span class="f">,</span> <span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="b">regs</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="b">cookie</span><span class="f">)</span><span class="f">;</span>
<a name="289" /><span class="True">     289:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">signal_setup_done</span><span class="f">(</span><span class="m">int</span> <span class="b">failed</span><span class="f">,</span> <span class="m">struct</span> <span class="b">ksignal</span> <span class="f">*</span><span class="b">ksig</span><span class="f">,</span> <span class="m">int</span> <span class="b">stepping</span><span class="f">)</span><span class="f">;</span>
<a name="290" /><span class="True">     290:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">signal_delivered</span><span class="f">(</span><span class="m">int</span> <span class="b">sig</span><span class="f">,</span> <span class="b">siginfo_t</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">k_sigaction</span> <span class="f">*</span><span class="b">ka</span><span class="f">,</span> <span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="b">regs</span><span class="f">,</span> <span class="m">int</span> <span class="b">stepping</span><span class="f">)</span><span class="f">;</span>
<a name="291" /><span class="True">     291:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">exit_signals</span><span class="f">(</span><span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="b">tsk</span><span class="f">)</span><span class="f">;</span>
<a name="292" /><span class="True">     292:</span> 
<a name="293" /><span class="True">     293:</span> <span class="k">/*</span>
<a name="294" /><span class="True">     294:</span> <span class="k"> * Eventually that&apos;ll replace get_signal_to_deliver(); macro for now,</span>
<a name="295" /><span class="True">     295:</span> <span class="k"> * to avoid nastiness with include order.</span>
<a name="296" /><span class="True">     296:</span> <span class="k"> */</span>
<a name="297" /><span class="True">     297:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Z2V0X3NpZ25hbF8w"><span class="b">get_signal</span></a><span class="f">(</span><span class="b">ksig</span><span class="f">)</span>                    \
<a name="298" /><span class="True">     298:</span> <span class="f">(</span><span class="f">{</span>                                \
<a name="299" /><span class="True">     299:</span>     <span class="m">struct</span> <span class="b">ksignal</span> <span class="f">*</span><span class="b">p</span> <span class="f">=</span> <span class="f">(</span><span class="b">ksig</span><span class="f">)</span><span class="f">;</span>                \
<a name="300" /><span class="True">     300:</span>     <span class="b">p</span><span class="f">-&gt;</span><span class="b">sig</span> <span class="f">=</span> <span class="b">get_signal_to_deliver</span><span class="f">(</span><span class="f">&amp;</span><span class="b">p</span><span class="f">-&gt;</span><span class="b">info</span><span class="f">,</span> <span class="f">&amp;</span><span class="b">p</span><span class="f">-&gt;</span><span class="b">ka</span><span class="f">,</span>    \
<a name="301" /><span class="True">     301:</span>                     <span class="b">signal_pt_regs</span><span class="f">(</span><span class="f">)</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a><span class="f">)</span><span class="f">;\
</span>    <span class="b">p</span><span class="f">-&gt;</span><span class="b">sig</span> <span class="f">&gt;</span> <span class="c">0</span><span class="f">;</span>                        \
<a name="303" /><span class="True">     303:</span> <span class="f">}</span><span class="f">)</span>
<a name="304" /><span class="True">     304:</span> 
<a name="305" /><span class="True">     305:</span> <span class="m">extern</span> <span class="m">struct</span> <span class="b">kmem_cache</span> <span class="f">*</span><span class="b">sighand_cachep</span><span class="f">;</span>
<a name="306" /><span class="True">     306:</span> 
<a name="307" /><span class="True">     307:</span> <span class="m">int</span> <span class="b">unhandled_signal</span><span class="f">(</span><span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="b">tsk</span><span class="f">,</span> <span class="m">int</span> <span class="b">sig</span><span class="f">)</span><span class="f">;</span>
<a name="308" /><span class="True">     308:</span> 
<a name="309" /><span class="True">     309:</span> <span class="k">/*</span>
<a name="310" /><span class="True">     310:</span> <span class="k"> * In POSIX a signal is sent either to a specific thread (Linux task)</span>
<a name="311" /><span class="True">     311:</span> <span class="k"> * or to the process as a whole (Linux thread group).  How the signal</span>
<a name="312" /><span class="True">     312:</span> <span class="k"> * is sent determines whether it&apos;s to one thread or the whole group,</span>
<a name="313" /><span class="True">     313:</span> <span class="k"> * which determines which signal mask(s) are involved in blocking it</span>
<a name="314" /><span class="True">     314:</span> <span class="k"> * from being delivered until later.  When the signal is delivered,</span>
<a name="315" /><span class="True">     315:</span> <span class="k"> * either it&apos;s caught or ignored by a user handler or it has a default</span>
<a name="316" /><span class="True">     316:</span> <span class="k"> * effect that applies to the whole thread group (POSIX process).</span>
<a name="317" /><span class="True">     317:</span> <span class="k"> *</span>
<a name="318" /><span class="True">     318:</span> <span class="k"> * The possible effects an unblocked signal set to SIG_DFL can have are:</span>
<a name="319" /><span class="True">     319:</span> <span class="k"> *   ignore    - Nothing Happens</span>
<a name="320" /><span class="True">     320:</span> <span class="k"> *   terminate    - kill the process, i.e. all threads in the group,</span>
<a name="321" /><span class="True">     321:</span> <span class="k"> *           similar to exit_group.  The group leader (only) reports</span>
<a name="322" /><span class="True">     322:</span> <span class="k"> *          WIFSIGNALED status to its parent.</span>
<a name="323" /><span class="True">     323:</span> <span class="k"> *   coredump    - write a core dump file describing all threads using</span>
<a name="324" /><span class="True">     324:</span> <span class="k"> *          the same mm and then kill all those threads</span>
<a name="325" /><span class="True">     325:</span> <span class="k"> *   stop     - stop all the threads in the group, i.e. TASK_STOPPED state</span>
<a name="326" /><span class="True">     326:</span> <span class="k"> *</span>
<a name="327" /><span class="True">     327:</span> <span class="k"> * SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.</span>
<a name="328" /><span class="True">     328:</span> <span class="k"> * Other signals when not blocked and set to SIG_DFL behaves as follows.</span>
<a name="329" /><span class="True">     329:</span> <span class="k"> * The job control signals also have other special effects.</span>
<a name="330" /><span class="True">     330:</span> <span class="k"> *</span>
<a name="331" /><span class="True">     331:</span> <span class="k"> *    +--------------------+------------------+</span>
<a name="332" /><span class="True">     332:</span> <span class="k"> *    |  POSIX signal      |  default action  |</span>
<a name="333" /><span class="True">     333:</span> <span class="k"> *    +--------------------+------------------+</span>
<a name="334" /><span class="True">     334:</span> <span class="k"> *    |  SIGHUP            |  terminate    |</span>
<a name="335" /><span class="True">     335:</span> <span class="k"> *    |  SIGINT            |    terminate    |</span>
<a name="336" /><span class="True">     336:</span> <span class="k"> *    |  SIGQUIT           |    coredump     |</span>
<a name="337" /><span class="True">     337:</span> <span class="k"> *    |  SIGILL            |    coredump     |</span>
<a name="338" /><span class="True">     338:</span> <span class="k"> *    |  SIGTRAP           |    coredump     |</span>
<a name="339" /><span class="True">     339:</span> <span class="k"> *    |  SIGABRT/SIGIOT    |    coredump     |</span>
<a name="340" /><span class="True">     340:</span> <span class="k"> *    |  SIGBUS            |    coredump     |</span>
<a name="341" /><span class="True">     341:</span> <span class="k"> *    |  SIGFPE            |    coredump     |</span>
<a name="342" /><span class="True">     342:</span> <span class="k"> *    |  SIGKILL           |    terminate(+)    |</span>
<a name="343" /><span class="True">     343:</span> <span class="k"> *    |  SIGUSR1           |    terminate    |</span>
<a name="344" /><span class="True">     344:</span> <span class="k"> *    |  SIGSEGV           |    coredump     |</span>
<a name="345" /><span class="True">     345:</span> <span class="k"> *    |  SIGUSR2           |    terminate    |</span>
<a name="346" /><span class="True">     346:</span> <span class="k"> *    |  SIGPIPE           |    terminate    |</span>
<a name="347" /><span class="True">     347:</span> <span class="k"> *    |  SIGALRM           |    terminate    |</span>
<a name="348" /><span class="True">     348:</span> <span class="k"> *    |  SIGTERM           |    terminate    |</span>
<a name="349" /><span class="True">     349:</span> <span class="k"> *    |  SIGCHLD           |    ignore       |</span>
<a name="350" /><span class="True">     350:</span> <span class="k"> *    |  SIGCONT           |    ignore(*)    |</span>
<a name="351" /><span class="True">     351:</span> <span class="k"> *    |  SIGSTOP           |    stop(*)(+)      |</span>
<a name="352" /><span class="True">     352:</span> <span class="k"> *    |  SIGTSTP           |    stop(*)      |</span>
<a name="353" /><span class="True">     353:</span> <span class="k"> *    |  SIGTTIN           |    stop(*)      |</span>
<a name="354" /><span class="True">     354:</span> <span class="k"> *    |  SIGTTOU           |    stop(*)      |</span>
<a name="355" /><span class="True">     355:</span> <span class="k"> *    |  SIGURG            |    ignore       |</span>
<a name="356" /><span class="True">     356:</span> <span class="k"> *    |  SIGXCPU           |    coredump     |</span>
<a name="357" /><span class="True">     357:</span> <span class="k"> *    |  SIGXFSZ           |    coredump     |</span>
<a name="358" /><span class="True">     358:</span> <span class="k"> *    |  SIGVTALRM         |    terminate    |</span>
<a name="359" /><span class="True">     359:</span> <span class="k"> *    |  SIGPROF           |    terminate    |</span>
<a name="360" /><span class="True">     360:</span> <span class="k"> *    |  SIGPOLL/SIGIO     |    terminate    |</span>
<a name="361" /><span class="True">     361:</span> <span class="k"> *    |  SIGSYS/SIGUNUSED  |    coredump     |</span>
<a name="362" /><span class="True">     362:</span> <span class="k"> *    |  SIGSTKFLT         |    terminate    |</span>
<a name="363" /><span class="True">     363:</span> <span class="k"> *    |  SIGWINCH          |    ignore       |</span>
<a name="364" /><span class="True">     364:</span> <span class="k"> *    |  SIGPWR            |    terminate    |</span>
<a name="365" /><span class="True">     365:</span> <span class="k"> *    |  SIGRTMIN-SIGRTMAX |    terminate       |</span>
<a name="366" /><span class="True">     366:</span> <span class="k"> *    +--------------------+------------------+</span>
<a name="367" /><span class="True">     367:</span> <span class="k"> *    |  non-POSIX signal  |  default action  |</span>
<a name="368" /><span class="True">     368:</span> <span class="k"> *    +--------------------+------------------+</span>
<a name="369" /><span class="True">     369:</span> <span class="k"> *    |  SIGEMT            |  coredump    |</span>
<a name="370" /><span class="True">     370:</span> <span class="k"> *    +--------------------+------------------+</span>
<a name="371" /><span class="True">     371:</span> <span class="k"> *</span>
<a name="372" /><span class="True">     372:</span> <span class="k"> * (+) For SIGKILL and SIGSTOP the action is &quot;always&quot;, not just &quot;default&quot;.</span>
<a name="373" /><span class="True">     373:</span> <span class="k"> * (*) Special job control effects:</span>
<a name="374" /><span class="True">     374:</span> <span class="k"> * When SIGCONT is sent, it resumes the process (all threads in the group)</span>
<a name="375" /><span class="True">     375:</span> <span class="k"> * from TASK_STOPPED state and also clears any pending/queued stop signals</span>
<a name="376" /><span class="True">     376:</span> <span class="k"> * (any of those marked with &quot;stop(*)&quot;).  This happens regardless of blocking,</span>
<a name="377" /><span class="True">     377:</span> <span class="k"> * catching, or ignoring SIGCONT.  When any stop signal is sent, it clears</span>
<a name="378" /><span class="True">     378:</span> <span class="k"> * any pending/queued SIGCONT signals; this happens regardless of blocking,</span>
<a name="379" /><span class="True">     379:</span> <span class="k"> * catching, or ignored the stop signal, though (except for SIGSTOP) the</span>
<a name="380" /><span class="True">     380:</span> <span class="k"> * default action of stopping the process may happen later or never.</span>
<a name="381" /><span class="True">     381:</span> <span class="k"> */</span>
<a name="382" /><span class="True">     382:</span> 
<a name="383" /><span class="False">     383:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">SIGEMT</span>
<a name="384" /><span class="False">     384:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHRU1UX01BU0tfMA__"><span class="b">SIGEMT_MASK</span></a>    <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><span class="b">SIGEMT</span><span class="f">)</span>
<a name="385" /><span class="True">     385:</span> <span class="f">#</span><span class="n">else</span>
<a name="386" /><span class="True">     386:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHRU1UX01BU0tfMA__"><span class="b">SIGEMT_MASK</span></a>    <span class="c">0</span>
<a name="387" /><span class="True">     387:</span> <span class="f">#</span><span class="n">endif</span>
<a name="388" /><span class="True">     388:</span> 
<a name="389" /><span class="False">     389:</span> <span class="f">#</span><span class="n">if</span> <a href="cpu.c_macros_ref.html#_U0lHUlRNSU5fMA__"><span class="b">SIGRTMIN</span></a> <span class="f">&gt;</span> <a href="cpu.c_macros_ref.html#_QklUU19QRVJfTE9OR18w"><span class="b">BITS_PER_LONG</span></a>
<a name="390" /><span class="False">     390:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span>    <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span><span class="f">-</span><span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="391" /><span class="True">     391:</span> <span class="f">#</span><span class="n">else</span>
<a name="392" /><span class="True">     392:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span>    <a href="cpu.c_macros_noref.html#_c2lnbWFza18w"><span class="b">sigmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span>
<a name="393" /><span class="True">     393:</span> <span class="f">#</span><span class="n">endif</span>
<a name="394" /><span class="True">     394:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">,</span> <span class="b">mask</span><span class="f">)</span> <span class="f">(</span><a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="b">mask</span><span class="f">)</span><span class="f">)</span>
<a name="395" /><span class="True">     395:</span> 
<a name="396" /><span class="True">     396:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9PTkxZX01BU0tfMA__"><span class="b">SIG_KERNEL_ONLY_MASK</span></a> <span class="f">(\
</span>    <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_U0lHS0lMTF8w"><span class="b">SIGKILL</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHU1RPUF8w"><span class="b">SIGSTOP</span></a><span class="f">)</span><span class="f">)</span>
<a name="398" /><span class="True">     398:</span> 
<a name="399" /><span class="True">     399:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9TVE9QX01BU0tfMA__"><span class="b">SIG_KERNEL_STOP_MASK</span></a> <span class="f">(\
</span>    <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHU1RPUF8w"><span class="b">SIGSTOP</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHVFNUUF8w"><span class="b">SIGTSTP</span></a><span class="f">)</span>   <span class="f">|</span> \
<a name="401" /><span class="True">     401:</span>     <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHVFRJTl8w"><span class="b">SIGTTIN</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHVFRPVV8w"><span class="b">SIGTTOU</span></a><span class="f">)</span>   <span class="f">)</span>
<a name="402" /><span class="True">     402:</span> 
<a name="403" /><span class="True">     403:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9DT1JFRFVNUF9NQVNLXzA_"><span class="b">SIG_KERNEL_COREDUMP_MASK</span></a> <span class="f">(\
</span>        <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHUVVJVF8w"><span class="b">SIGQUIT</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHSUxMXzA_"><span class="b">SIGILL</span></a><span class="f">)</span>    <span class="f">|</span> \
<a name="405" /><span class="True">     405:</span>     <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHVFJBUF8w"><span class="b">SIGTRAP</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHQUJSVF8w"><span class="b">SIGABRT</span></a><span class="f">)</span>   <span class="f">|</span> \
<a name="406" /><span class="True">     406:</span>         <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHRlBFXzA_"><span class="b">SIGFPE</span></a><span class="f">)</span>    <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHU0VHVl8w"><span class="b">SIGSEGV</span></a><span class="f">)</span>   <span class="f">|</span> \
<a name="407" /><span class="True">     407:</span>     <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHQlVTXzA_"><span class="b">SIGBUS</span></a><span class="f">)</span>    <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHU1lTXzA_"><span class="b">SIGSYS</span></a><span class="f">)</span>    <span class="f">|</span> \
<a name="408" /><span class="True">     408:</span>         <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHWENQVV8w"><span class="b">SIGXCPU</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHWEZTWl8w"><span class="b">SIGXFSZ</span></a><span class="f">)</span>   <span class="f">|</span> \
<a name="409" /><span class="True">     409:</span>     <a href="cpu.c_macros_noref.html#_U0lHRU1UX01BU0tfMA__"><span class="b">SIGEMT_MASK</span></a>                       <span class="f">)</span>
<a name="410" /><span class="True">     410:</span> 
<a name="411" /><span class="True">     411:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9JR05PUkVfTUFTS18w"><span class="b">SIG_KERNEL_IGNORE_MASK</span></a> <span class="f">(\
</span>        <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHQ09OVF8w"><span class="b">SIGCONT</span></a><span class="f">)</span>   <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHQ0hMRF8w"><span class="b">SIGCHLD</span></a><span class="f">)</span>   <span class="f">|</span> \
<a name="413" /><span class="True">     413:</span>     <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHV0lOQ0hfMA__"><span class="b">SIGWINCH</span></a><span class="f">)</span>  <span class="f">|</span>  <a href="cpu.c_macros_noref.html#_cnRfc2lnbWFza18w"><span class="b">rt_sigmask</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_U0lHVVJHXzA_"><span class="b">SIGURG</span></a><span class="f">)</span>    <span class="f">)</span>
<a name="414" /><span class="True">     414:</span> 
<a name="415" /><span class="True">     415:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX2tlcm5lbF9vbmx5XzA_"><span class="b">sig_kernel_only</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span> \
<a name="416" /><span class="True">     416:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">&lt;</span> <a href="cpu.c_macros_ref.html#_U0lHUlRNSU5fMA__"><span class="b">SIGRTMIN</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> <a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9PTkxZX01BU0tfMA__"><span class="b">SIG_KERNEL_ONLY_MASK</span></a><span class="f">)</span><span class="f">)</span>
<a name="417" /><span class="True">     417:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX2tlcm5lbF9jb3JlZHVtcF8w"><span class="b">sig_kernel_coredump</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span> \
<a name="418" /><span class="True">     418:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">&lt;</span> <a href="cpu.c_macros_ref.html#_U0lHUlRNSU5fMA__"><span class="b">SIGRTMIN</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> <a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9DT1JFRFVNUF9NQVNLXzA_"><span class="b">SIG_KERNEL_COREDUMP_MASK</span></a><span class="f">)</span><span class="f">)</span>
<a name="419" /><span class="True">     419:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX2tlcm5lbF9pZ25vcmVfMA__"><span class="b">sig_kernel_ignore</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span> \
<a name="420" /><span class="True">     420:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">&lt;</span> <a href="cpu.c_macros_ref.html#_U0lHUlRNSU5fMA__"><span class="b">SIGRTMIN</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> <a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9JR05PUkVfTUFTS18w"><span class="b">SIG_KERNEL_IGNORE_MASK</span></a><span class="f">)</span><span class="f">)</span>
<a name="421" /><span class="True">     421:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX2tlcm5lbF9zdG9wXzA_"><span class="b">sig_kernel_stop</span></a><span class="f">(</span><span class="b">sig</span><span class="f">)</span> \
<a name="422" /><span class="True">     422:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">sig</span><span class="f">)</span> <span class="f">&lt;</span> <a href="cpu.c_macros_ref.html#_U0lHUlRNSU5fMA__"><span class="b">SIGRTMIN</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> <a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">sig</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9TVE9QX01BU0tfMA__"><span class="b">SIG_KERNEL_STOP_MASK</span></a><span class="f">)</span><span class="f">)</span>
<a name="423" /><span class="True">     423:</span> 
<a name="424" /><span class="True">     424:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX3VzZXJfZGVmaW5lZF8w"><span class="b">sig_user_defined</span></a><span class="f">(</span><span class="b">t</span><span class="f">,</span> <span class="b">signr</span><span class="f">)</span> \
<a name="425" /><span class="True">     425:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">t</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">sighand</span><span class="f">-&gt;</span><span class="b">action</span><span class="f">[</span><span class="f">(</span><span class="b">signr</span><span class="f">)</span><span class="f">-</span><span class="c">1</span><span class="f">]</span><span class="f">.</span><span class="b">sa</span><span class="f">.</span><span class="b">sa_handler</span> <span class="f">!=</span> <a href="cpu.c_macros_noref.html#_U0lHX0RGTF8w"><span class="b">SIG_DFL</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span>    \
<a name="426" /><span class="True">     426:</span>      <span class="f">(</span><span class="f">(</span><span class="b">t</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">sighand</span><span class="f">-&gt;</span><span class="b">action</span><span class="f">[</span><span class="f">(</span><span class="b">signr</span><span class="f">)</span><span class="f">-</span><span class="c">1</span><span class="f">]</span><span class="f">.</span><span class="b">sa</span><span class="f">.</span><span class="b">sa_handler</span> <span class="f">!=</span> <a href="cpu.c_macros_noref.html#_U0lHX0lHTl8w"><span class="b">SIG_IGN</span></a><span class="f">)</span><span class="f">)</span>
<a name="427" /><span class="True">     427:</span> 
<a name="428" /><span class="True">     428:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2lnX2ZhdGFsXzA_"><span class="b">sig_fatal</span></a><span class="f">(</span><span class="b">t</span><span class="f">,</span> <span class="b">signr</span><span class="f">)</span> \
<a name="429" /><span class="True">     429:</span>     <span class="f">(</span><span class="f">!</span><a href="cpu.c_macros_noref.html#_c2lnaW5tYXNrXzA_"><span class="b">siginmask</span></a><span class="f">(</span><span class="b">signr</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9JR05PUkVfTUFTS18w"><span class="b">SIG_KERNEL_IGNORE_MASK</span></a><span class="f">|</span><a href="cpu.c_macros_noref.html#_U0lHX0tFUk5FTF9TVE9QX01BU0tfMA__"><span class="b">SIG_KERNEL_STOP_MASK</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> \
<a name="430" /><span class="True">     430:</span>      <span class="f">(</span><span class="b">t</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">sighand</span><span class="f">-&gt;</span><span class="b">action</span><span class="f">[</span><span class="f">(</span><span class="b">signr</span><span class="f">)</span><span class="f">-</span><span class="c">1</span><span class="f">]</span><span class="f">.</span><span class="b">sa</span><span class="f">.</span><span class="b">sa_handler</span> <span class="f">==</span> <a href="cpu.c_macros_noref.html#_U0lHX0RGTF8w"><span class="b">SIG_DFL</span></a><span class="f">)</span>
<a name="431" /><span class="True">     431:</span> 
<a name="432" /><span class="True">     432:</span> <span class="m">void</span> <span class="b">signals_init</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="433" /><span class="True">     433:</span> 
<a name="434" /><span class="True">     434:</span> <span class="m">int</span> <span class="b">restore_altstack</span><span class="f">(</span><span class="m">const</span> <span class="b">stack_t</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="435" /><span class="True">     435:</span> <span class="m">int</span> <span class="b">__save_altstack</span><span class="f">(</span><span class="b">stack_t</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span><span class="f">)</span><span class="f">;</span>
<a name="436" /><span class="True">     436:</span> 
<a name="437" /><span class="True">     437:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2F2ZV9hbHRzdGFja19leF8w"><span class="b">save_altstack_ex</span></a><span class="f">(</span><span class="b">uss</span><span class="f">,</span> <span class="b">sp</span><span class="f">)</span> <span class="m">do</span> <span class="f">{</span> \
<a name="438" /><span class="True">     438:</span>     <span class="b">stack_t</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="b">__uss</span> <span class="f">=</span> <span class="b">uss</span><span class="f">;</span> \
<a name="439" /><span class="True">     439:</span>     <span class="m">struct</span> <span class="b">task_struct</span> <span class="f">*</span><span class="b">t</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_Y3VycmVudF8w"><span class="b">current</span></a><span class="f">;</span> \
<a name="440" /><span class="True">     440:</span>     <a href="cpu.c_macros_noref.html#_cHV0X3VzZXJfZXhfMA__"><span class="b">put_user_ex</span></a><span class="f">(</span><span class="f">(</span><span class="m">void</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="f">)</span><span class="b">t</span><span class="f">-&gt;</span><span class="b">sas_ss_sp</span><span class="f">,</span> <span class="f">&amp;</span><span class="b">__uss</span><span class="f">-&gt;</span><span class="b">ss_sp</span><span class="f">)</span><span class="f">;</span> \
<a name="441" /><span class="True">     441:</span>     <a href="cpu.c_macros_noref.html#_cHV0X3VzZXJfZXhfMA__"><span class="b">put_user_ex</span></a><span class="f">(</span><span class="b">sas_ss_flags</span><span class="f">(</span><span class="b">sp</span><span class="f">)</span><span class="f">,</span> <span class="f">&amp;</span><span class="b">__uss</span><span class="f">-&gt;</span><span class="b">ss_flags</span><span class="f">)</span><span class="f">;</span> \
<a name="442" /><span class="True">     442:</span>     <a href="cpu.c_macros_noref.html#_cHV0X3VzZXJfZXhfMA__"><span class="b">put_user_ex</span></a><span class="f">(</span><span class="b">t</span><span class="f">-&gt;</span><span class="b">sas_ss_size</span><span class="f">,</span> <span class="f">&amp;</span><span class="b">__uss</span><span class="f">-&gt;</span><span class="b">ss_size</span><span class="f">)</span><span class="f">;</span> \
<a name="443" /><span class="True">     443:</span> <span class="f">}</span> <span class="m">while</span> <span class="f">(</span><span class="c">0</span><span class="f">)</span><span class="f">;</span>
<a name="444" /><span class="True">     444:</span> 
<a name="445" /><span class="True">     445:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1BST0NfRlNfMA__"><span class="b">CONFIG_PROC_FS</span></a>
<a name="446" /><span class="True">     446:</span> <span class="m">struct</span> <span class="b">seq_file</span><span class="f">;</span>
<a name="447" /><span class="True">     447:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">render_sigset_t</span><span class="f">(</span><span class="m">struct</span> <span class="b">seq_file</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">sigset_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="448" /><span class="True">     448:</span> <span class="f">#</span><span class="n">endif</span>
<a name="449" /><span class="True">     449:</span> 
<a name="450" /><span class="True">     450:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_SIGNAL_H */</span>
<a name="451" /><span class="True">     451:</span> </pre>
  </body>
</html>
